message = Map();
info "ram";
info arguments;
info "slc" + selections.get(0);
shareChat = options.get("share");
shareLink = options.get("link");
if(selections == null)
{
	info "yes";
	headersMp = Map();
	headersMp.put("Content-Type","application/json");
	Nme = '';
	response = invokeurl
	[
		url :"https://content.googleapis.com/drive/v2/files?q=fullText%20contains%20%27" + Nme + "%27%20and%20trashed%20%3D%20false&maxResults=5"
		type :GET
		headers:headersMp
		connection:"*INSERT_YOUR_CONNECTION_NAME*"
		useraccess:true
	];
	info response;
	if(response != null)
	{
		jsn = response.getJSON("items").toJSONList();
		anyoneLink = "https://drive.google.com/open?id=";
		frwdMsgAry = List();
		if(jsn != null && !jsn.isEmpty())
		{
			for each  recordlst in jsn
			{
				rec_map = recordlst.toMap();
				//info rec_map;
				//tmp_Map = rec_map;
				mime_type = rec_map.get("mimeType");
				iconLink = rec_map.get("iconLink");
				file_id = rec_map.get("id");
				file_name = rec_map.get("title");
				ownerName = rec_map.get("owners").getJSON("displayName");
				editLink = rec_map.get("alternateLink");
				thumLink = rec_map.get("thumbnailLink");
				info file_id;
				frwdMsgObj = Map();
				frwdMsgObj.put("type","text");
				frwdMsgObj.put("title","[" + file_name + "](" + editLink + ")");
				frwdMsgObj.put("data","Author : " + ownerName);
				buttonObj = Map();
				buttonObj.put("text","Open");
				buttonObj.put("hint","Just click to open the file");
				buttonObj.put("type","ok");
				clickObj = Map();
				clickObj.put("action.type","open.url");
				actionDataObj = Map();
				if(shareLink == "")
				{
					actionDataObj.put("web",anyoneLink);
				}
				else if(shareChat == "")
				{
					actionDataObj.put("web",editLink);
				}
				else
				{
					actionDataObj.put("web",editLink);
				}
				clickObj.put("action.data",actionDataObj);
				buttonObj.put("click",clickObj);
				buttonAry = List();
				frwdmsgAry = List();
				buttonAry.add(buttonObj);
				frwdMsgObj.put("buttons",buttonAry);
				frwdmsgAry.add(frwdMsgObj);
				if(thumLink == null)
				{
					if(mime_type.contains("folder"))
					{
						thumLink = "";
					}
					else if(mime_type.contains("document"))
					{
						thumLink = "";
					}
					else if(mime_type.contains("spreadsheet"))
					{
						thumLink = "";
					}
					else if(mime_type.contains("presentation"))
					{
						thumLink = "";
					}
				}
			}
			message.put("message.thumbnail.url",thumLink);
			message.put("message.text","List of google drive files.");
			message.put("message.title","Drive Files");
			message.put("message.formatted",frwdmsgAry);
			zoho.chat.postToChat(chat.get("chatid"),message);
		}
	}
	else
	{
		message.put("text","Please enter the file name.(Hint:-s)");
		return message;
	}
}
else
{
	info "va";
	elem = selections.get(0);
	//imageurl = elem.get("imageurl");
	headersMp = Map();
	headersMp.put("Content-Type","application/json");
	file_name = elem.get("title");
	file_details = invokeurl
	[
		url :"https://content.googleapis.com/drive/v2/files?q=fullText%20contains%20%27" + encodeUrl(file_name) + "%27%20and%20trashed%20%3D%20false&maxResults=1"
		type :GET
		headers:headersMp
		connection:"*INSERT_YOUR_CONNECTION_NAME*"
		useraccess:true
	];
	mime = file_details.get("items").get(0).get("mimeType");
	file_Id = elem.get("id");
	docu_check = mime.contains("document");
	sheet_check = mime.contains("spreadsheet");
	slide_check = mime.contains("presentation");
	if(docu_check == true)
	{
		editLink = "https://docs.google.com/document/d/" + file_Id + "/edit?usp=drivesdk";
	}
	if(sheet_check == true)
	{
		editLink = "https://docs.google.com/spreadsheets/d/" + file_Id + "/edit#gid=0";
	}
	if(slide_check == true)
	{
		editLink = "https://docs.google.com/presentation/d/" + file_Id + "/edit#slide=id.p";
	}
	ownerName = elem.get("description");
	thumLink = elem.get("imageurl");
	//info thumLink.indexOf("FILE TYPE");
	emailIdlist = List();
	headersMp = Map();
	headersMp.put("Content-Type","application/json");
	info "THUM : " + thumLink;
	if(shareChat == "")
	{
		userCnt = chat.get("userscount");
		users = chat.get("users");
		for each  members in users
		{
			usersMap = members.toMap();
			emailId = usersMap.get("email");
			if(emailId != zoho.loginuserid)
			{
				emailIdlist.add(emailId);
			}
		}
		for each  emailId in emailIdlist
		{
			permissions = Map();
			permissions.put("role","writer");
			permissions.put("type","user");
			permissions.put("value",emailId);
			response = invokeurl
			[
				url :"https://www.googleapis.com/drive/v2/files/" + file_Id + "/permissions"
				type :POST
				parameters:permissions.toString()
				headers:headersMp
				connection:"*INSERT_YOUR_CONNECTION_NAME*"
				useraccess:true
			];
			//info response;
		}
	}
	else if(shareLink == "")
	{
		//info "Called";
		permissions = Map();
		permissions.put("role","writer");
		permissions.put("type","anyone");
		permissions.put("withLink",true);
		response = invokeurl
		[
			url :"https://www.googleapis.com/drive/v2/files/" + file_Id + "/permissions"
			type :POST
			parameters:permissions.toString()
			headers:headersMp
			connection:"*INSERT_YOUR_CONNECTION_NAME*"
			useraccess:true
		];
		//info "Share any one response  :::::: " + response;
	}
	anyoneLink = "https://drive.google.com/open?id=" + file_Id;
	//openLink = "https://docs.google.com/document/d/"+file_Id1+"/edit?usp=drivesdk";
	buttonObj = Map();
	buttonObj.put("label","Open");
	if(shareLink != null && shareLink != "" || shareChat != null && shareChat != "")
	{
		info "ammu";
		buttonObj.put("label","shared_link");
	}
	buttonObj.put("hint","Just click to open the file");
	buttonObj.put("type","+");
	clickObj = Map();
	clickObj.put("type","open.url");
	actionDataObj = Map();
	if(shareLink == "")
	{
		actionDataObj.put("web",anyoneLink);
	}
	else if(shareChat == "")
	{
		actionDataObj.put("web",editLink);
	}
	else
	{
		actionDataObj.put("web",editLink);
	}
	clickObj.put("data",actionDataObj);
	butnAry = List();
	buttonObj.put("action",clickObj);
	butnAry.add(buttonObj);
	//info thumLink;
	/*if(thumLink == null)
	{
		thumLink = "https://drive-thirdparty.googleusercontent.com/128/type/application/octet-stream";
	}*/
	/*if(thumLink.contains("document") && thumLink.contains("FILE TYPE"))
			{
				thumLink = "https://drive-thirdparty.googleusercontent.com/128/type/application/octet-stream";
			}
			else if(thumLink.contains("sheet") && thumLink.contains("FILE TYPE"))
			{
				thumLink = "http://icons.iconarchive.com/icons/alecive/flatwoken/64/Apps-Google-Drive-Sheets-icon.png";
			}
			else if(thumLink.contains("presentation") && thumLink.contains("FILE TYPE"))
			{
				thumLink = "http://icons.iconarchive.com/icons/alecive/flatwoken/72/Apps-Google-Drive-Slides-icon.png";
			}
			else
			{
				thumLink = "https://drive-thirdparty.googleusercontent.com/128/type/application/octet-stream";
			}*/
	//}
	info "-------    " + thumLink;
	msgMp = Map();
	msgMp.put("title",file_name);
	msgMp.put("thumbnail",thumLink);
	msgMp.put("theme","7");
	message.put("text","by " + ownerName);
	message.put("card",msgMp);
	message.put("buttons",butnAry);
	// 	message.put("theme","7");
	//info message;
	if(shareLink == "" || shareChat == "")
	{
		zoho.chat.postToChat(chat.get("id"),message);
		file_type = selections;
		info "ft" + file_type;
	}
	else
	{
		//info "ELSE : " + message;
		file_type = selections;
		info "ft" + file_type;
		return message;
	}
	//}
}
return Map();
